package com.jjb.www.ui.activity;

import android.content.Intent;
import android.text.TextUtils;

import androidx.annotation.NonNull;

import com.airbnb.lottie.LottieAnimationView;
import com.blankj.utilcode.util.SPUtils;
import com.gyf.immersionbar.BarHide;
import com.gyf.immersionbar.ImmersionBar;
import com.jjb.www.R;
import com.jjb.www.app.AppActivity;
import com.jjb.www.other.AppConfig;
import com.hjq.widget.view.SlantedTextView;
import com.jjb.www.ui.dialog.CommonAgreeDialog;
import com.jjb.www.utils.ResUtils;

/**
 * author : Android CRG
 * github : https://github.com/getActivity/AndroidProject
 * time   : 2018/10/18
 * desc   : 闪屏界面
 */
public final class SplashActivity extends AppActivity {

    private CommonAgreeDialog mAgreeDialog;

    @Override
    protected int getLayoutId() {
        return R.layout.splash_activity;
    }

    @Override
    protected void initView() {

    }

    @Override
    protected void initData() {
        isShowAgreeDialog();
    }

    private void isShowAgreeDialog() {
        if (!SPUtils.getInstance().getBoolean(AppConfig.LOGIN_AGREE)) {
            String content = ResUtils.getString(R.string.agreement).replaceAll("_APP_NAME_", ResUtils.getString(R.string.app_name));
            mAgreeDialog = new CommonAgreeDialog(this, content, ResUtils.getString(R.string.app_name));
            mAgreeDialog.setOnDialogClickListener(new CommonAgreeDialog.IDialogClickListener() {
                @Override
                public void onConfirmClick() {
                    SPUtils.getInstance().put(AppConfig.LOGIN_AGREE, true);
                    //已同意用户协议
                    startActivity(LoginActivity.class);
                    finish();
                }

                @Override
                public void onCancelClick() {
                    finish();
                }
            });
            mAgreeDialog.show();
        } else {
            if (!"".equals(AppConfig.getInstance().getToken())) {
                startActivity(HomeActivity.class);
                finish();
            } else {
                startActivity(LoginActivity.class);
                finish();
            }
        }
    }

    @NonNull
    @Override
    protected ImmersionBar createStatusBarConfig() {
        return super.createStatusBarConfig()
                // 隐藏状态栏和导航栏
                .hideBar(BarHide.FLAG_HIDE_BAR);
    }

    @Override
    public void onBackPressed() {
        //禁用返回键
        //super.onBackPressed();
    }

    @Override
    protected void initActivity() {
        // 问题及方案：https://www.cnblogs.com/net168/p/5722752.html
        // 如果当前 Activity 不是任务栈中的第一个 Activity
        if (!isTaskRoot()) {
            Intent intent = getIntent();
            // 如果当前 Activity 是通过桌面图标启动进入的
            if (intent != null && intent.hasCategory(Intent.CATEGORY_LAUNCHER)
                    && Intent.ACTION_MAIN.equals(intent.getAction())) {
                // 对当前 Activity 执行销毁操作，避免重复实例化入口
                finish();
                return;
            }
        }
        super.initActivity();
    }

    @Deprecated
    @Override
    protected void onDestroy() {
        // 因为修复了一个启动页被重复启动的问题，所以有可能 Activity 还没有初始化完成就已经销毁了
        // 所以如果需要在此处释放对象资源需要先对这个对象进行判空，否则可能会导致空指针异常
        super.onDestroy();
    }
}